#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
<<<<<<< .mine
#include <pthread.h>
#include <unistd.h>
#include <ncurses.h>
=======
#include <pthread.h>
#include <unistd.h>
#include <ncurses.h>
#include <math.h>
>>>>>>> .r24

#define LARGURA_MAX 80
#define ALTURA_MAX 23
#define THREADS_X 10
#define THREADS_Y 3
#define PORCENTAGEM 50
<<<<<<< .mine
#define TAB_MARK '*'
#define TAB_NOMARK ' '
#define BRIGHT 1
#define COLOR 34
#define BACKGROUND 40
=======
#define TAB_MARK '*'
#define TAB_NOMARK ' '
#define REFRESH_RATE 400000
#define ESC_CHAR 27
>>>>>>> .r24

typedef struct{
	int x;
	int y;                                             //posicao da matriz (canto superior esquerdo) onde deve iniciar o processamento
	int size_x; 
	int size_y;                                        //dimensoes do tabuleiro parcial que deve ser verificado
	int matriz_ger_atual;                             //0 ou 1. Qual a matriz que armazena a geracao atual.
	char ***tabuleiro;                                //apontador para a matriz que armazena os tabuleiros.
} t_parteTabuleiro, *p_parteTabuleiro;

typedef struct{
	p_parteTabuleiro t;
	int x;
	int y;
} thr_Handler;

void calculaProxGen(p_parteTabuleiro tabul, int tamx, int tamy);
void alocaTabuleiro(p_parteTabuleiro *t, int *x, int *y, int *wait);
void liberaMatriz(char ***m, int y);
void imprimeMatriz(char **m, int x, int y);
void liberaTabuleiro(p_parteTabuleiro *t, int y);
void *thread(void *v);
void getNextGen(p_parteTabuleiro t, int x, int y);
